package com.kcwl.carrier.domain.service;

import com.kcwl.carrier.domain.condition.BizTagsRefCondition;
import com.kcwl.carrier.domain.entity.BizTagsRefInfo;
import com.kcwl.carrier.domain.repository.IBizTagsRefRepository;
import com.kcwl.carrier.infrastructure.repository.po.BizTagsRefPO;
import com.kcwl.framework.utils.KcBeanConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @描述 车辆信息
 * @创建人 zhl
 * @创建时间 2022/11/1
 * @修改人和其它信息
 */
@Service
public class BizTagsRefDomainService {
    @Autowired
    private IBizTagsRefRepository bizTagsRefRepository;

    public List<BizTagsRefInfo> queryBizTagsRefList(BizTagsRefCondition condition) {
        return bizTagsRefRepository.queryList(condition);
    }

    public void saveOrUpdateBizTagsRef(Long bizId, int bizType, Long tagId) {
        if (tagId == null) {
            return;
        }

        BizTagsRefCondition condition = new BizTagsRefCondition();
        condition.setBizId(bizId);
        condition.setBizType(bizType);
        List<BizTagsRefInfo> list = bizTagsRefRepository.queryList(condition);

        if (list.size() == 0) {
            BizTagsRefPO bizTagsRefPO = new BizTagsRefPO();
            bizTagsRefPO.setBizId(bizId);
            bizTagsRefPO.setBizType(bizType);
            bizTagsRefPO.setTagId(tagId);
            bizTagsRefPO.setCreateTime(new java.util.Date());
            bizTagsRefRepository.save(bizTagsRefPO);
        } else {
            BizTagsRefInfo bizTagsRef = list.get(0);
            if (!bizTagsRef.getBizId().equals(tagId)) {
                bizTagsRef.setTagId(tagId);
                bizTagsRefRepository.updateById(KcBeanConverter.toBean(bizTagsRef, BizTagsRefPO.class));
            }
        }
    }
}
